package com.herdsric.common.core.exception;

public enum ErrorCodeEnum {
    /**
     * 公用基础参数校验异常代码
     */
    E1001("1001", ""),
    E1002("1002", ""),
    E1003("1003", "AppId 不存在"),

    /**
     * E12XX   	消息模块Feign接口异常
     * E13XX	会员激励模块Feign接口异常
     * E14XX	开发平台模块Feign接口异常
     * ....
     */
    E1401("1401", "应用-接口 字段权限获取异常"),

    E1901("1901", "规则队列配置不正确 topic:tag"),

    /**
     * 消息模块
     */
    E2000("2000", ""),
    E2001("2001", "Excel export error"),
    /**
     * 会员激励模块
     */
    E3000("3000", ""),
    E3901("3901", "队列启动异常"),
    E3902("3902", "队列消费异常"),
    /**
     * 开放平台业务逻辑异常代码
     */
    E4000("4000", "开发平台模块接口调用异常"),
    E4001("4001", "外部接口Token获取失败"),
    E4002("4002", "租户代码重复"),
    E4003("4003", "渠道类型代码重复"),
    E4004("4004", "URL/请求方式/版本不能重复"),
    E4005("4005", "渠道类型下存在渠道信息"),
    E4006("4006", "AppId、AppSecurity重复"),
    E4007("4007", "租户已被使用"),
    E4008("4008", "应用已被使用"),
    E4009("4009", "应用接口已被使用"),
    E4010("4010", "渠道信息已被使用"),
    E4011("4011", "渠道名称不能重复"),
    E4012("4012", "选中的配置属性需要填写"),
    E4013("4013", "每次增加不得超过1000条"),
    E4014("4014", "订单号重复"),
    E4015("4015", "退款订单号重复"),
    E4016("4016", "父单号不存在"),
    E4017("4017", "子单号不存在"),
    E4018("4018", "子订单不能为空"),
    /**
     * 会员数据整合逻辑异常代码
     */
    E5000("5000", ""),
    E5100("5100", "会员号，外部会员号，手机号，渠道cid，加密手机号不能全为空"),
    E5101("5101", "会员不存在"),
    E5102("5102", "会员未绑定"),
    E5103("5103", "会员已绑定"),
    E5104("5104", "手机号、加密手机号不能全为空"),
    E5105("5105", "指定会员号和手机号无法查询到用户"),
    E5106("5106", "渠道不存在"),
    E5107("5107", "接口属性配置缺失，无法操作"),
    E5108("5108", "渠道cid存在，则cType不能为空"),

    E5201("5201", "会员已激活"),

    E5300("5300", "类型不支持"),

    E5991("5991", "cid已存在"),
    E5992("5992", "加密手机号已存在"),


    /**
     * 消息模块
     */
    E6000("6000", "活动系统异常"),
    E6001("6001", "活动类型不存在"),
    E6002("6002", "活动不存在"),
    E6003("6003", "活动已开启，无法修改"),
    E6004("6004", "活动状态不正确"),
    E6005("6005", "活动状态{}-{}无法修改"),

    E6006("6006", "活动未开启，无法添加场次"),
    E6007("6007", "活动已过期，无法添加场次"),
    E6008("6008", "活动已删除，无法添加场次"),
    E6009("6009", "活动场次开始时间不能小于活动开始时间"),
    E6010("6010", "活动场次结束时间不能大于活动结束时间"),
    E6011("6011", "活动场次不存在"),
    E6012("6012", "活动场次结束时间不能小于活动场次结束时间"),

    E6013("6013", "活动场次已开启，无法修改场次"),
    E6014("6014", "活动场次已过期，无法修改场次"),
    E6015("6015", "活动场次已删除，无法修改场次"),


    /**
     * 消息模块--活动
     */
    E6100("6100", ""),
    /**
     * 消息模块--卡券
     */
    E6200("6200", ""),
    E6201("6201", "卡券类型未配置卡券"),
    E6202("6202", "卡券已过期"),
    E6203("6203", "卡券已失效"),
    E6204("6204", "卡券模板已失效"),
    E6205("6205", "卡券未生效"),
    E6206("6206", "卡券状态错误"),

    /**
     * 消息模块--消息
     */
    E6300("6300", ""),
    E6301("6301", "消息为空无法推送"),
    /**
     * 订单模块
     */
    E7000("7000", ""),
    E7001("7001", "退款单号不存在"),

    /**
     *
     */
    E8000("8000", ""),
    /**
     * 消息模块逻辑异常代码
     */
    E9000("9000", ""),
    E9001("9001", "消息日志不存在"),
    E9002("9002", "消息推送接口配置不正确"),
    E9003("9003", "消息模板{}不存在"),
    E9004("9004", "消息模板{}未生效"),
    E9005("9005", "消息模板{}日用量已用完"),
    E9006("9006", "消息模板{}总用量已用完"),


    E9999("9999", "系统异常");

    public final String code;
    public final String msg;

    ErrorCodeEnum(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }
}
